1. Field of the Invention
The present invention relates generally to computer systems, and in particular, to the scheduling of shared processing in a computer system whose physical resources are split into a plurality of logical partitions (hereinafter abbreviated to “LPARs”).
2. Description of the Related Art
In recent years, a scheme called “server partitioning” has been put to practical use, whereby the hardware resources of a high-performance computer system are partitioned into a number of parts called LPARs, each of which in turn serves as a server. Server partitioning is classified into two types depending on the operating environments of the LPARs: hypervisor type and host operating system (hereinafter abbreviated to OS) type. In a hypervisor type environment, LPARs are operated under a special management program called a hypervisor that resides on the bare machine. In a host OS type environment, LPARs are operated under a management program that runs as an application under an ordinary OS (host OS). In either case, the key elements of server partitioning are a control mechanism called Virtual Machine Monitor (VMM) and a number of LPARs operated under it. An LPAR is also called a “virtual machine”; the OS operating on it is called the “guest OS.” In terms of function, the guest OS operates in the same manner on the LPAR as it does on an ordinary server which is not partitioned.
The hypervisor primarily carries out instruction emulation, memory management, I/O processing, and scheduling. Since several LPARs may share some of the resources of the hosts, the hypervisor includes the function of “shared processing,” which is demanded by all the LPARs from time to time. In general, this processing should be given a higher priority than the processing of individual LPARs. Unfortunately, shared processing may, if no CPU is allocated to it, take up the entire CPU resources allocated to an LPAR, thereby holding up all the processing on that LPAR.
There exist several known schemes that are designed to solve such a problem, namely the problem where certain processing prevents physical CPU resources from being allocated to other processing. An example is time-sharing, which is a scheduling algorithm designed to guarantee impartial treatment of various pieces of processing. Time-sharing allows physical CPUs to be allocated to each individual piece of processing, without holding up shared processing for an extended period of time. With time-sharing, however, it is impossible to determine whether the physical CPU that is given resources is one that is processing an LPAR in busy state or one that is processing an LPAR that is internally in idle state.
On the other hand, as a scheme for preventing prolonged hold-up of the processing of certain jobs, a “job class” method is known, which allocates resources based on priority. This method predefines a priority scheme consisting of multiple levels called job classes; each piece of processing is assigned one of the job classes when executed. This approach thus realizes priority-based allocation of CPU resources.
The job class method, however, is effective only within a closed environment inside one computer (OS); it is difficult to apply this method to an environment encompassing multiple LPARs and a hypervisor. The reason is that whereas the hypervisor statically treats all the LPARs equally with the same priority level, the internal state of each LPAR dynamically switches from “busy” to “idle” and vice versa.
Further, Japanese Unexamined Patent Application Publication No. 2006-244483 discloses a method for detecting processes that consume large amounts of CPU resources and allocating them to an “isolated LPAR” for which allocation of less resources is defined than for other LPARs, thereby preventing these other LPARs from being impacted. This scheme, however, cannot be applied to shared processing requested by the hypervisor, which should be given a higher priority during execution than the processing of LPARs.